/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelos;

import java.beans.PropertyChangeSupport;
import java.util.Date;
import modelos.enums.EstatusRenta;

/**
 *
 * @author luis
 */
public class Renta {

    private final transient PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this);
    public static final String PROP_MIEMBRO = "PROP_MIEMBRO";
    public static final String PROP_COPIA = "PROP_COPIA";
    public static final String PROP_FECHAALQUILER = "PROP_FECHAALQUILER";
    public static final String PROP_FECHADEVOLUCION = "PROP_FECHADEVOLUCION";
    public static final String PROP_ESTATUS = "PROP_ESTATUS";

    private Miembro miembro;
    private Copia copia;
    private Date fechaAlquiler;
    private Date fechaDevolucion;
    private EstatusRenta estatus;

    public Renta() {
        this.estatus = EstatusRenta.RENTADO;
    }

    public Renta(Miembro miembro, Copia copia, Date fechaAlquiler, Date fechaDevolucion, EstatusRenta estatus) {
        this.miembro = miembro;
        this.copia = copia;
        this.fechaAlquiler = fechaAlquiler;
        this.fechaDevolucion = fechaDevolucion;
        this.estatus = estatus;
    }

    /**
     * @return the miembro
     */
    public Miembro getMiembro() {
        return miembro;
    }

    /**
     * @param miembro the miembro to set
     */
    public void setMiembro(Miembro miembro) {
        modelos.Miembro oldMiembro = this.miembro;
        this.miembro = miembro;
        propertyChangeSupport.firePropertyChange(PROP_MIEMBRO, oldMiembro, miembro);
    }

    /**
     * @return the copia
     */
    public Copia getCopia() {
        return copia;
    }

    /**
     * @param copia the copia to set
     */
    public void setCopia(Copia copia) {
        modelos.Copia oldCopia = this.copia;
        this.copia = copia;
        propertyChangeSupport.firePropertyChange(PROP_COPIA, oldCopia, copia);
    }

    /**
     * @return the fechaAlquiler
     */
    public Date getFechaAlquiler() {
        return fechaAlquiler;
    }

    /**
     * @param fechaAlquiler the fechaAlquiler to set
     */
    public void setFechaAlquiler(Date fechaAlquiler) {
        java.util.Date oldFechaAlquiler = this.fechaAlquiler;
        this.fechaAlquiler = fechaAlquiler;
        propertyChangeSupport.firePropertyChange(PROP_FECHAALQUILER, oldFechaAlquiler, fechaAlquiler);
    }

    /**
     * @return the fechaDevolucion
     */
    public Date getFechaDevolucion() {
        return fechaDevolucion;
    }

    /**
     * @param fechaDevolucion the fechaDevolucion to set
     */
    public void setFechaDevolucion(Date fechaDevolucion) {
        java.util.Date oldFechaDevolucion = this.fechaDevolucion;
        this.fechaDevolucion = fechaDevolucion;
        propertyChangeSupport.firePropertyChange(PROP_FECHADEVOLUCION, oldFechaDevolucion, fechaDevolucion);
    }

    /**
     * @return the estatus
     */
    public EstatusRenta getEstatus() {
        return estatus;
    }

    /**
     * @param estatus the estatus to set
     */
    public void setEstatus(EstatusRenta estatus) {
        modelos.enums.EstatusRenta oldEstatus = this.estatus;
        this.estatus = estatus;
        propertyChangeSupport.firePropertyChange(PROP_ESTATUS, oldEstatus, estatus);
    }

}
